package opf5.ui;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;

import opf5.casosDeUso.LoginDependiente;
import opf5.casosDeUso.LoginObserver;
import opf5.entities.dominio.Jugador;
import opf5.entities.dominio.Propuesta;
import opf5.entities.propuestas.PropuestaConcreta;
import opf5.entities.propuestas.RepositorioPropuestasEnMemoria;
import opf5.entities.repositorios.OPF5Factory;
import opf5.entities.repositorios.RepositorioPropuestas;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class VistaProponerJugador extends LoginDependiente {

	private JFrame frame;
	private JTextField textField;
	private RepositorioPropuestas repositorioPropuestas;

	public VistaProponerJugador(
			RepositorioPropuestas repositorioPropuestas2) {
		this.repositorioPropuestas = repositorioPropuestas2;
	}


	/**
	 * Initialize the contents of the frame.
	 * @wbp.parser.entryPoint
	 */
	public void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 312, 139);
		frame.getContentPane().setLayout(null);
		
		JLabel lblIngreseElNombre = new JLabel("Ingrese el nombre del nuevo jugador");
		lblIngreseElNombre.setBounds(12, 12, 277, 15);
		frame.getContentPane().add(lblIngreseElNombre);
		
		textField = new JTextField();
		textField.setBounds(12, 39, 277, 19);
		frame.getContentPane().add(textField);
		textField.setColumns(10);
		
		JButton btnProponer = new JButton("Proponer");
		btnProponer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				runProponerJugador();
			}
		});
		btnProponer.setBounds(172, 70, 117, 25);
		frame.getContentPane().add(btnProponer);

		
		final VistaProponerJugador window = this;
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});

	}

	
	/*
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 */
	
	protected void runProponerJugador() {
		String nombre = this.textField.getText();
		if (nombre.isEmpty()) {
			JOptionPane.showMessageDialog(frame, "Debe ingresar un nombre de usuario.");
		} else {
			Propuesta propuesta = OPF5Factory.getInstance().makePropuesta(nombre, this.jugador);
			this.repositorioPropuestas.agregarPropuesta(propuesta);
			JOptionPane.showMessageDialog(frame, "Propuesta submitida.");
			this.frame.dispose();
		}
	}
}
